package pe.com.astech.web.dao.impl;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import javax.sql.DataSource;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.stereotype.Repository;

import pe.com.astech.web.bean.PerfilBean;
import pe.com.astech.web.bean.TipoMaquinariaBean;
import pe.com.astech.web.dao.TipoMaquinariaDao;
import pe.com.astech.web.exception.DBException;

@Repository
public class TipoMaquinariaDaoImpl implements TipoMaquinariaDao {
	
	private JdbcTemplate jdbcTemplate;
	
	private static final Log log = LogFactory.getLog(TipoMaquinariaDaoImpl.class);
	
	@Autowired
	public void setDataSource(DataSource dataSource) {
		this.jdbcTemplate = new JdbcTemplate(dataSource);
	}
	
	@Override
	public List<TipoMaquinariaBean> obtenerTipoMaquinaria(
			String mensajeTrazabilidad, String id_orden_pedido){
		
		String query = "select tm.id_tipo_maquinaria,tm.nombre,tm.modelo from tipo_maquinaria tm " +
						"inner join detalle_orden_pedido d on d. tipo_maquinaria_ID=tm.id_tipo_maquinaria " +
						"where d.orden_pedido_ID = :id_orden_pedido";
		List<TipoMaquinariaBean> list = new ArrayList<TipoMaquinariaBean>();
		log.info("query : " + query);
		
		MapSqlParameterSource parameters = new MapSqlParameterSource();
	 	parameters.addValue("id_orden_pedido", id_orden_pedido);
	 	
	 	NamedParameterJdbcTemplate namedParameterJdbcTemplate= new NamedParameterJdbcTemplate(jdbcTemplate);
		List<Map<String, Object>> usrRows = namedParameterJdbcTemplate.queryForList(query,parameters);

			for (Map<String, Object> usrRow : usrRows) {

				TipoMaquinariaBean tipoMaquinariaBean = new TipoMaquinariaBean();
				tipoMaquinariaBean.setId_tipo_maquinaria(String.valueOf(usrRow.get("id_tipo_maquinaria")));
				tipoMaquinariaBean.setNombre(String.valueOf(usrRow.get("nombre")));
				tipoMaquinariaBean.setModelo(String.valueOf(usrRow.get("modelo")));
				
				list.add(tipoMaquinariaBean);
				
			}
		
		return list;
		
		
	}

}
